gusucode.com > MATLAB与控制系统仿真实践 源代码 > MATLAB与控制系统仿真实践 源代码/第十四章/eg14_11.m

    delta=3;%需修改为delta=5时符合要求
s=tf('s');
G=20/(s*(s+1));
margin(G)
[gm,pm]=margin(G)
phim1=50;
phim=phim1-pm+delta;
phim=phim*pi/180;
alfa=(1+sin(phim))/(1-sin(phim));
a=10*log10(alfa);
[mag,phase,w]=bode(G);
adB=20*log10(mag);
wm=spline(adB,w,-a);
t=1/(wm*sqrt(alfa));
Gc=(1+alfa*t*s)/(1+t*s);
[gmc,pmc]=margin(G*Gc)
figure;
margin(G*Gc)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure;
step(feedback(G,1),feedback(G*Gc,1),':')
gtext('校正前系统');
gtext('校正后系统');
figure;
G2=feedback(G*Gc,1);
[num2,den2]=tfdata(G2,'v');
t=0:0.01:3;
y2=step(num2,[den2,0],t);
plot(t,t,t,y2,':');grid
title('斜坡输入和校正后系统的斜坡响应');
legend('斜坡输入','校正后系统的斜坡响应');